package com.eclink.iot.base;

import com.eclink.iot.rfid.RFIDServer;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

import java.util.Timer;
import java.util.TimerTask;

/**
 * 设备健康
 */
@Slf4j
@Data
public class DeviceHealth {

    /**
     * 检测健康状态的定时器
     */
    private Timer checkTimer;


    /**
     * 开始设备的健康监测
     */
    public void start() {

        // 如果旧的定时器还存在，停止旧的定时器，并置空
        if (checkTimer != null) {
            checkTimer.cancel();
            checkTimer = null;
        }

        checkTimer = new Timer();
        // 定时发送状态询问命令
        checkTimer.schedule(new TimerTask() {
            public void run() {
                try {
                    // 检测所有设备的状态
                    RFIDServer.sendCheckDeviceStatus();
                } catch (Exception e) {
                    log.error("send check device status error", e);
                }

            }
        }, 0, 5000);
        // 定时检测设备的状态
        checkTimer.schedule(new TimerTask() {
            public void run() {
                // 检测所有设备的状态
                RFIDServer.checkDeviceActive();
            }
        }, 0, 1000);
    }

}
